package com.dd.cloud.user.DTO.km;

import com.dd.cloud.common.utils.AESUtil;
import com.dd.cloud.user.DTO.CallbackPresStatusReq;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import java.io.Serializable;

/**
 * <p>
 * 状态上报参数
 * </p>
 *
 * @author czg
 * @since 2022-07-19
 */
@Data
public class KmStatusReportReq extends CallbackPresStatusReq implements Serializable {
    /**
     * 自定义参数, 即我方自己设置值,定义为key值aes对称加密参数
     */
    @NotBlank(message = "自定义加密参数不能为空")
    private String param;

    /**
     * 康美通知状态	必须	通知状态：1表示审核成功(即康美订单将会进行调剂煎煮)；2表示审核失败(可能违反了十八反十九畏等情况)；
     */
    @NotBlank(message = "状态不能为空")
    private Integer state;

    /**
     * 康美通知描述	非必须	会告知第三方机构该订单审核失败原因等
     */
    private String describe;

    /**
     * 康美订单号
     */
    private String kmOrderId;

    /**
     * 解密参数,是否被篡改信息
     *
     * @return false 解密失败 true 解密成功
     */
    public boolean decrypt() {
        try {
            System.out.println("param:" + this.param);
            this.param = AESUtil.decrypt(this.param, AESUtil.SECRET_KEY);
            System.out.println("param:" + this.param);
            if (this.param == null) {
                return false;
            }
        } catch (Exception e) {
            return false;
        }
        return true;
    }
}
